package com.cn.web.JDYXK;

import com.alibaba.fastjson2.JSONObject;
import com.google.gson.Gson;
//import com.kingdee.bos.webapi.entity.RepoRet;
//import com.kingdee.bos.webapi.sdk.K3CloudApi;
import org.junit.Test;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
//import kingdee.bos.webapi.client.K3CloudApiClient;

import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.http.HttpHeaders;
import java.util.Map;
import java.util.List;
import java.nio.charset.StandardCharsets;
import static org.junit.Assert.fail;

@CrossOrigin
@RestController
@RequestMapping("/JDYXK")
@Transactional
public class DemoController {
//    @RequestMapping("/Demo")
//    @ResponseBody
//    public String Demo(@RequestBody JSONObject jsonObject) {
////注意 1：此处不再使用参数形式传入用户名及密码等敏感信息，改为在登录配置文件中设置。
////注意 2：必须先配置第三方系统登录授权信息后，再进行业务操作，详情参考各语言版本SDK介绍中的登录配置文件说明。
////读取配置，初始化SDK
//        K3CloudApi client = new K3CloudApi();
////请求参数，要求为json字符串
//        String jsonData = "{\n" +
//                "    \"CreateOrgId\": 0,\n" +
//                "    \"Number\": \"\",\n" +
//                "    \"Id\": \"107635\",\n" +
//                "    \"IsSortBySeq\": \"false\"\n" +
//                "}";
//        try {
//            //业务对象标识
//            String formId = "BD_Customer";
//            //调用接口
//            String resultJson = client.view(formId, jsonData);
//
//
//            //用于记录结果
//            Gson gson = new Gson();
//            //对返回结果进行解析和校验
//            RepoRet repoRet = gson.fromJson(resultJson, RepoRet.class);
//            if (repoRet.getResult().getResponseStatus().isIsSuccess()) {
//                System.out.printf("接口返回结果: %s%n", gson.toJson(repoRet.getResult()));
//
//            } else {
//                fail("接口返回结果: " + gson.toJson(repoRet.getResult().getResponseStatus()));
//            }
//        } catch (Exception e) {
//            fail(e.getMessage());
//        }
//        return "123";
//    }
//
//    @RequestMapping("/Demo1")
//    @ResponseBody
//    public String Demo1(@RequestBody JSONObject jsonObject) {
//        String jsonData = "[{\n" +
//                "\"parameters\": [\"abc\",\n" +
//                "123]\n" +
//                "}\n]";
//        try {
//
//            K3CloudApi api = new K3CloudApi();
//            boolean isSuccess = api.CheckAuthInfo().getResponseStatus().isIsSuccess();
//            if (isSuccess){
//                String requestUrl="Jac.XkDemo.BOS.WebApi.CustomWebApiDemoWebApiService.DoSth,ClassLibrary1.common.kdsvc";
//                Gson gson = new Gson();
//                 Object[] paramInfo =gson.fromJson(jsonData,Object[].class);
//                 String result =String.valueOf(api.execute(requestUrl,paramInfo));
//                 System.out.println(result);
//            }
//            //用于记录结果
//            //对返回结果进行解析和校验
//
//        } catch (Exception e) {
//            fail(e.getMessage());
//        }
//        return "123";
//    }
//    @RequestMapping("/Demo2")
//    @ResponseBody
//    public String Demo2(@RequestBody JSONObject jsonObject) {
//
//        try {
//            // 创建 HttpClient 实例
//            HttpClient client = HttpClient.newHttpClient();
//
//            // 定义请求体内容
//            String jsonBody = "{\r\n\"parameters\": [\"abc\",\r\n123]\r\n}\r\n";
//
//            // 创建 POST 请求
//            HttpRequest request = HttpRequest.newBuilder()
//                    .uri(new URI("http://localhost/k3cloud/Jac.XkDemo.BOS.WebApi.CustomWebApiDemoWebApiService.DoSth,ClassLibrary1.common.kdsvc"))
//                    .header("User-Agent", "Apifox/1.0.0 (https://apifox.com)")
//                    .header("Content-Type", "application/json")
//                    .header("Token", "eyJhbGciOiJIUzI1NiJ9.eyJwYXNzd29yZCI6IjEyMzQ1NiIsInJvbGUiOiJhZG1pbiIsImV4cCI6MTczMTczNjg3NCwianRpIjoiODE5NjU1MDQtOTdiNy00ZDdhLTllMTYtNGM0OTI3YTYwNThlIiwidXNlcm5hbWUiOiIwIn0.FZOvcL85NGzhhJN8fpAxdjZYR5be2of3c9h7UpS9mN0")
//                    .POST(HttpRequest.BodyPublishers.ofString(jsonBody, StandardCharsets.UTF_8))
//                    .build();
//
//            // 发送请求并获取响应
//            HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
//
//            // 输出响应的状态码和内容
//            System.out.println("Response Code: " + response.statusCode());
//            System.out.println("Response Body: " + response.body());
//
//            // 可选：打印响应头
//            HttpHeaders headers = response.headers();
//            Map<String, List<String>> headerMap = headers.map();
//            System.out.println("Response Headers: " + headerMap);
//
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//        return "123";
//    }
//    @RequestMapping("/Demo3")
//    @ResponseBody
//    public String Demo3(@RequestBody JSONObject jsonObject) {
//        K3CloudApi client = new K3CloudApi();
//
//        // 准备参数数组，直接使用 "abc" 和 123 而不是 JSON 字符串
//        Object[] parameters = new Object[]{"abc", 123};
//
//        try {
//            // 服务的完整路径，包含命名空间、类名和方法名
//            String requestUrl = "Jac.XkDemo.BOS.WebApi.CustomWebApiDemoWebApiService.DoSth,ClassLibrary1.common.kdsvc";
//
//            // 调用接口，传入服务名称和参数数组
//            String resultJson = client.execute(requestUrl, parameters);
//
//            // 处理返回结果
//            Gson gson = new Gson();
//            RepoRet repoRet = gson.fromJson(resultJson, RepoRet.class);
//
//            // 检查返回状态
//            if (repoRet.getResult().getResponseStatus().isIsSuccess()) {
//                System.out.printf("接口返回结果: %s%n", gson.toJson(repoRet.getResult()));
//            } else {
//                fail("接口返回失败: " + gson.toJson(repoRet.getResult().getResponseStatus()));
//            }
//        } catch (Exception e) {
//            fail("调用接口出错: " + e.getMessage());
//        }
//
//        return "123";
//    }
//
//    private void fail(String message) {
//        System.out.println(message);
//    }
}
